/**
 * @file   main.cpp
 * @author Shao <student@student>
 * @date   Sun Nov 21 16:51:26 2021
 * 
 * @brief  
 * 
 * 
 */


#include <bits/stdc++.h>
using namespace std;

string str,str1;
char s[100],stack1[100];
int l,length1,length2,length3,length4;
bool flag;
double stack2[100],w,a;


int main(int argc, const char * argv[]){
        /*
	 * 进入循环。
	 */
	while(true){
        str1="";
        /*
         * 输入字符串。
         */
        getline(cin,str);
        /*
         * 当读取exit时，退出循环。
         */
        if (str  ==  "exit")
        {
            return 0;
        }
        /*
         * 除去空格。
         */
        str.erase(remove(str.begin(), str.end(), ' '), str.end());
        l=str.length();
        /*
         * 参数归零。
         */
	    flag = false;
        length1=0;
        length2=0;
        length3=0;
        length4=0;

        /*
         * 忽略其中不属于数字, 小数点, +, -, *, /, (,) 和空格以外的字符。
         */
	    for(int i=0;i<=l-1;i++)
	    if((str[i]>='0'&&str[i]<='9') || str[i] == '.' || str[i] == '(' || str[i] == ')' || str[i] == '+' || str[i] == '-' || str[i] == '*' || str[i] == '/')
	    str1+=str[i]; 
        length1=str1.length();
        /*
         * 处理数据。
         */
	    for(int i=0;i<=length1-1;i++)
	    if((str1[i]>='0'&&str1[i]<='9') || str1[i] == '.'){
	        s[++length2] = str1[i];
	        if(i == length1-1)s[++length2] = ' ';
	        else if((str1[i+1]<'0' || str1[i+1]>'9')&&str1[i+1]!='.')s[++length2]=' '; 
	    }
        /*
         * 栈中优先级大于等于它且最后一个括号之前的符号在放置时全部出栈。
         */
	    else if(str1[i] == '+' || str1[i] == '-'){   
	        while ( length3&&stack1[length3]!='(' ){
		    s[++length2] = stack1[length3],length3--;
		}
	        stack1[++length3] = str1[i];
	    }
	    else if(str1[i] == '*' || str1[i] == '/'){
	        while(length3&&(stack1[length3] == '*' || stack1[length3] == '/'))s[++length2]=stack1[length3],length3--;
	        stack1[++length3]=str1[i];
	    }
	    else if(str1[i] == '(')stack1[++length3]=str1[i];
	    else if(str1[i] == ')'){
	        while(length3&&stack1[length3]!='(')s[++length2]=stack1[length3],length3--;
            /*
             * 括号不合理。
             */
	        if(length3 == 0){ 
		    cout<<"Error."<<endl;
		    flag = true;
		    break;
		}
	        length3--;
	    }
	/*
	 * 处理其余运算符。
	 */
	while(length3&&stack1[length3]!='('){
	    s[++length2]=stack1[length3],length3--; 
	} 
	/*
	 * 运算符错误。
	 */                   
	if(length3){
	        cout<<"Error."<<endl;flag = true;
	}                               
	    if(flag){
            continue; 
        }                    
	    a = 0;
        w = 10;

	for(int i=1;i<=length2&&(!flag);i++){
		  if(s[i] == ' '){
          continue;
          }
		  else if(s[i] == '+'){ 
              /*
               * 运算符错误。
               */     
		  	if(length4<2){
			  cout<<"Error."<<endl;
              flag = true; 
			}
			else stack2[length4-1]+=stack2[length4],length4--;
		  }
		  else if(s[i] == '-'){
		  	if(length4<2){
			  cout<<"Error."<<endl;flag = true;
			}
			else stack2[length4-1]-=stack2[length4],length4--;
		  }
		  else if(s[i] == '*'){
		  	if(length4<2){
			  cout<<"Error."<<endl;flag = true;
			}
			else stack2[length4-1]*=stack2[length4],length4--;
		  }
		  else if(s[i] == '/'){
		  	if(length4<2){
			  cout<<"Error."<<endl;flag = true;
			}
			else if(stack2[length4] == 0){
			  cout<<"Error."<<endl;flag = true;
			}
			else stack2[length4-1]/=stack2[length4],length4--;
		  }
           /*
            * 小数点的计算。
            */     
		  else if(s[i] == '.'){    
		  	if(w!=1){
			  cout<<"Error."<<endl;flag = true; 
			}
			else w=0.1;
		  }
		  else{
		        if(w == 10)w=1;                  
		        if(w == 1){
			  a=a*10+s[i]-'0';
			}
			else{
			  a=a+(s[i]-'0')*w;
			  w/=10;                          
			} 
			if(i == length2 || s[i+1] == ' '){                      
			  if(w == 0.1){
			    cout<<"Error."<<endl;flag = true;
			  }
			  else{
			    stack2[++length4]=a;
			    a=0;
			    w=10;	
			  }
			}
		  }
	}
	if(length4>1) {                                   
	  cout<<"Error."<<endl;flag = true;
	}     
        /*
         * 异常处理。
         */                              
	    if(flag){
            continue;                          
	    }
	    cout<<stack2[1]<<endl;
	}
	return 0;
} 
